1. Field of the Invention
The invention described herein relates to data network communications, and in particular relates to packet communications and packet acknowledgments.
2. Background Art
In data communication protocols such as the transmission control protocol (TCP), acknowledgement (ACK) filtering tries to eliminate unnecessary ACK packets. This is possible because TCP ACK packets are cumulative—ACK packet 3 acknowledges all of the received data that ACK packet 2 acknowledges, plus an additional received segment. If ACK packets 2 and 3 are both queued for transmission, ACK packet 2 can be discarded, sending only ACK packet 3. This benefits both the network and the TCP stream by consuming less bandwidth, allowing the most recent ACK to be sent sooner (minimizing latency), reducing packet processing required by intermediate routers, etc.
However, there are scenarios where ACK filtering can be too aggressive, and can be harmful for the TCP stream. In particular, this occurs when there is a lot of latency between the TCP client and the TCP server (as is often the case on the Internet), and even more so when there is a lot of local transmit latency. This is often the case with upstream communications in systems configured and operating in accordance with a version of the Data Over Cable Service Interface Specification (DOCSIS) standard. The TCP server relies on the ACK pacing from the TCP client to send more TCP data packets; the farther apart ACK packets are, the farther apart data packets will be.
This problem is exacerbated by errors that cause TCP data packets from the TCP server to the TCP client to be lost (as is often the case on the Internet), since the client will wait for the missing packet to arrive, and will stop sending ACK packets or will send selective ACK packets to indicate that one or more data segments is missing. The end-to-end network latency is compounded with local transmit latency and the gap in ACK packets from the client, causing the server to delay sending TCP data packets, which further delays the client from sending ACK packets, and so on.
What is needed is a method and a system to dynamically adjust the TCP ACK filtering so that the benefits of ACK filtering can be preserved while minimizing harmful effects with high latency and lost data packets.
Further embodiments, features, and advantages of the present invention, as well as the operation of the various embodiments of the present invention, are described below with reference to the accompanying drawings.